/*
 * @Author: 0x9DEFA478
 * @Date: 2021-09-21 16:48:28
 * @LastEditTime: 2021-09-21 19:27:32
 * @LastEditors: 0x9DEFA478
 * @Description: 
 * QQ:2652450237
 * ============================================================================================================================================
 * 
 * 
 * 
 *                                                                                               ************      ****************************
 *                                                                                             ************      ****************************  
 *                                                                                           ************      ****************************    
 *                                                                                         ************      ****************************      
 *                                                                                       ************      ************                        
 *                                                                                     ************      ************                          
 *                                                                                   ************      ************                            
 *                                                                                 ************      ************                              
 *                                                                               ************      ************                                
 *                                                                             ************      ************                                  
 *                                                                           ************      ************                                    
 *                                                                         ************      ************                                      
 *                                                                       ************      ************                                        
 *                                                                     ************      ************                                          
 *                                                                   ************      ************                                            
 *                                                                 ************      ************                                              
 *                                                               ************      ************                                                
 *                                                             ************      ************                                                  
 *                                                           ************      ************                                                    
 *                                                         ************      ************                                                      
 *                                                       ************      ************                                                        
 *                                                     ************      ************                                                          
 *                                                   ************      ************                                                            
 *                                                 ************      ************                                                              
 *                                               ************      ************                                                                
 *                                             ************      ************                                                                  
 *                                           ************      ************                                                                    
 *                                         ************      ************                                                                      
 *                                       ************      ************                                                                        
 *                                     ************      ************                                                                          
 *                                   ************      ************                                                                            
 *                                 ************      ************                                                                              
 *                               ************      ************                                                                                
 *                             ************      ************                                                                                  
 *                           ************      ************                                                                                    
 *                         ************      ************                                                                                      
 *       ****************************      ************                                                                                        
 *     ****************************      ************                                                                                          
 *   ****************************      ************                                                                                            
 * ****************************      ************                                                                                              
 * 
 * 
 * 
 * ============================================================================================================================================
 * 
 */
#ifndef __GT1151_H_
#define __GT1151_H_


#define vGT1151_DefaultAddr    0x14U

#define vGT1151_NumOfPoint     10

#define vGT1151_PanelWidth     800

#define vGT1151_PanelHeight    480



#define vGT1151_ConfigTable_Length           236

//初始化时参数TxBuffer的长度
#define vGT1151_TxBufferLength (2+vGT1151_ConfigTable_Length+3)

//初始化时参数RxBuffer的长度
#define vGT1151_RxBufferLength (vGT1151_ConfigTable_Length)

typedef struct{
  int (*I2C_Write)(unsigned char,unsigned char*,int);//底层iic写操作 返回 0:成功 其他:失败 (7位器件地址,发送数据,发送数据长度)
  int (*I2C_Read)(unsigned char,unsigned char*,int,unsigned char*,int);//底层iic读操作 返回 0:成功 其他:失败 (7位器件地址,发送数据,发送数据长度,接收数据,接收数据长度)
  void (*Reset)(void);//底层(GT1151)复位
}GT1151_LL_Function;

typedef struct{

  unsigned char ProductID[4];


  unsigned char* TxBuffer;
  unsigned char* RxBuffer;
  
  unsigned char Addr;

  //点位信息
  struct{
    int S;//0:未按下 其他:按下
    short X;
    short Y;
    short W;
    short H;
  }PointData[vGT1151_NumOfPoint];

  GT1151_LL_Function LL_Function;

}GT1151;






/**
 * @brief GT1151 初始化
 * @param gt1151 GT1151用于容纳句柄
 * @param Addr 器件地址
 * @param TxBuffer 发送缓存
 * @param RxBuffer 接收缓存
 * @param LL_Function 底层方法
 * @return 0:成功 其他:失败
 */
int GT1151_Init(GT1151* gt1151,unsigned char Addr,unsigned char* TxBuffer,unsigned char* RxBuffer,GT1151_LL_Function* LL_Function);

/**
 * @brief 刷新点位信息 不要太频繁调用此方法(触摸芯片可能会反应不过来)
 * @param gt1151 GT1151句柄
 * @return 0:刷新成功 其他:刷新失败
 */
int GT1151_RefreshTouchPoint(GT1151* gt1151);


#endif //__GT1151_H_
